﻿using System;

namespace Framework.Unity
{
    internal interface IContainerComponentManager
    {
        void OverrideImplementationFor(string existingComponentKey, Type serviceType, Type implementationType, Lifestyle lifestyle);
        void OverrideImplementationFor(Type serviceType, Type implementationType);
        void OverrideImplementationFor(Type serviceType, Type implementationType, Lifestyle lifestyle);
        void OverrideInstanceFor(string key, object instance);
        void OverrideInstanceFor(Type serviceType, object instance);
        bool HasComponent(Type serviceType);
        void ReleaseInstanceFor(Type serviceType);
        void ReleaseComponentFor(Type serviceType);
    }
}